In related U.S. patent application Ser. No. 10/924,652 and U.S. patent application Ser. No. 10/668,833, a time-dependent data storage and recovery technique is disclosed. Embodiments of such a technique provide a solution for continuous data protection (CDP) wherein write commands directed to a storage system (or data store) are intercepted by a storage management system having a current store and a time store.
FIG. 1 shows an exemplary embodiment of a CDP system 100. A storage management system 106 may intercept write commands that are issued by a host 102 and directed to a storage system 104. In the storage management system 106, a current store 108 may maintain or have access to a current (or mirror) copy of the digital content of the storage system 104. A time store 110 may record information associated with each intercepted write command, such as new data in the write command's payload and/or old data to be overwritten in the current store in response to the write command. Recordation of the new or old data in response to a write command may be referred to as a copy-on-write (COW) operation, and the new or old data recorded may be referred to as COW data. The time store 110 may also record other information (i.e., metadata) associated with an intercepted write command and/or the corresponding COW operation, such as, for example, a timestamp, an original location in the current store where the old data are overwritten, and a destination location in the time store to which the COW data are copied. Each COW operation typically backs up one or more blocks of COW data, thereby creating one set of COW data and corresponding metadata. Over a period of time, multiple sets of COW data and corresponding metadata (including timestamps) may be accumulated as a collection of historical records of what have been written or overwritten in the current store 108 or the storage system 104. The content of the time store 110 may be indexed, for example, based on time and/or storage address to facilitate efficient access to the backup data.
With a current copy of the digital content of the storage system 104 in the current store 108 and the historical records in the time store 110, the storage management system 106 adds a new dimension, i.e., time, to the storage system 104. Assuming the storage management system 106 has been operatively coupled to the storage system 104 since a past time, the storage management system 106 may quickly and accurately restore any addressable content in the storage system 104 to any point in time between the past time and a present time.
There are a wide variety of implementation options for the above-described CDP method. FIG. 2 shows one exemplary implementation wherein a storage management system 206 is operatively coupled to both a host 202 and a storage system 204. The storage management system 206 may or may not be positioned in a critical data path 20 between the host 202 and the storage system 204. If it is not in the critical data path 20, the storage management system 206 may be switched into a “capture mode” whenever it is desirable for it to intercept communications between the host 202 and the storage system 204. The storage management system 206 is typically implemented with one or more processor modules 208, wherein each processor module 208 performs a series of operations such as, for example, data interception, data replication, record creation, and metadata indexing.
FIG. 3 shows an exemplary implementation of a scalable storage management system 300. The storage management system 300 may comprise a plurality of processor modules 302 that are interconnected via an internal network (or backplane) 30. Each processor module 302 may comprise a central processing unit (CPU) 304 that is in communication with a target interface 306, a read-only memory (ROM) 308, a memory 310, an initiator interface 312, and an internal network interface 314. The CPU 304 may be implemented in one or more integrated circuits, and can include other “glue” logic (not shown) for interfacing with other integrated circuits, such as bus interfaces, clocks, and communications interfaces. The CPU 304 may implement software that is provided in the ROM 308 and also software in the memory 310, which software can be accessed, for example, over the internal network interface 314. The internal network interface 314 may connect the processor module 302 to the internal network 30, such that the processor module 302 may communicate with other processor modules. In one implementation, one or more sets of processor modules 302 are rack mounted within a storage management system, and the internal network 30 also connects each rack to the other racks within the storage management system. This distributed processing creates a system whose size (e.g., memory capacity, processing speed, etc.) may be scaled up or down to fit the desired capacity.
However, the above-described modularization of a storage management system is only a first step towards scalability. A number of limitations still restrict the environments in which the storage management system may be deployed. There are also platform specific restrictions that limit the portability of the processor modules. In addition, the current architecture of the storage management system cannot take full advantage of emerging intelligent switch techniques.
In view of the foregoing, it would be desirable to provide a storage management architecture which overcomes the above-described inadequacies and shortcomings.